{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**地理坐标聚类**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "from sklearn.cluster import KMeans"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.854851  ,  0.23563352],\n",
       "       [ 0.71865792,  0.73929573],\n",
       "       [ 0.47994312,  0.18305247],\n",
       "       [ 0.67464347,  0.40257099],\n",
       "       [ 0.22160723,  0.91457652],\n",
       "       [ 0.59193878,  0.23120549],\n",
       "       [ 0.1573735 ,  0.99379984],\n",
       "       [ 0.55028744,  0.31988137],\n",
       "       [ 0.14501069,  0.31083385],\n",
       "       [ 0.09741856,  0.84159934],\n",
       "       [ 0.92586195,  0.79907525],\n",
       "       [ 0.34035937,  0.70791765],\n",
       "       [ 0.29522435,  0.18326309],\n",
       "       [ 0.21886804,  0.81904587],\n",
       "       [ 0.03254632,  0.99632777],\n",
       "       [ 0.93324273,  0.59115216],\n",
       "       [ 0.47146826,  0.36747042],\n",
       "       [ 0.68430096,  0.37520729],\n",
       "       [ 0.65119908,  0.93936144],\n",
       "       [ 0.90526326,  0.23504645],\n",
       "       [ 0.68726206,  0.68366711],\n",
       "       [ 0.24522355,  0.68471624],\n",
       "       [ 0.60059563,  0.87490054],\n",
       "       [ 0.436273  ,  0.09723361],\n",
       "       [ 0.23588466,  0.05740386],\n",
       "       [ 0.25321698,  0.22187098],\n",
       "       [ 0.24350871,  0.60553629],\n",
       "       [ 0.23145548,  0.20008618],\n",
       "       [ 0.1193619 ,  0.62597331],\n",
       "       [ 0.61800934,  0.11582212],\n",
       "       [ 0.13687744,  0.21379012],\n",
       "       [ 0.28720419,  0.99155183],\n",
       "       [ 0.00724015,  0.39138927],\n",
       "       [ 0.17101449,  0.36231578],\n",
       "       [ 0.1454872 ,  0.9534437 ],\n",
       "       [ 0.13478162,  0.45953191],\n",
       "       [ 0.96340801,  0.26069171],\n",
       "       [ 0.881901  ,  0.46173615],\n",
       "       [ 0.73918437,  0.58333842],\n",
       "       [ 0.62021051,  0.04300214],\n",
       "       [ 0.0299353 ,  0.54798897],\n",
       "       [ 0.94233708,  0.51424024],\n",
       "       [ 0.87158856,  0.4856765 ],\n",
       "       [ 0.24681195,  0.42197809],\n",
       "       [ 0.36061942,  0.66247097],\n",
       "       [ 0.69491934,  0.62206246],\n",
       "       [ 0.39856012,  0.24694991],\n",
       "       [ 0.18632887,  0.06446688],\n",
       "       [ 0.92304278,  0.48998903],\n",
       "       [ 0.94842296,  0.65528135],\n",
       "       [ 0.86694818,  0.84005928],\n",
       "       [ 0.17683993,  0.66783092],\n",
       "       [ 0.19554228,  0.14940499],\n",
       "       [ 0.38142368,  0.22145154],\n",
       "       [ 0.68550831,  0.26004739],\n",
       "       [ 0.52126451,  0.95058742],\n",
       "       [ 0.62835263,  0.20448621],\n",
       "       [ 0.10155555,  0.04808586],\n",
       "       [ 0.73229966,  0.8430484 ],\n",
       "       [ 0.97224375,  0.13531745],\n",
       "       [ 0.34893943,  0.08157645],\n",
       "       [ 0.7061391 ,  0.21867251],\n",
       "       [ 0.90505073,  0.19262673],\n",
       "       [ 0.60827006,  0.65202627],\n",
       "       [ 0.41663882,  0.31860601],\n",
       "       [ 0.98818395,  0.58116228],\n",
       "       [ 0.35703615,  0.99986908],\n",
       "       [ 0.4825567 ,  0.8111036 ],\n",
       "       [ 0.96331344,  0.16330589],\n",
       "       [ 0.67319145,  0.4206738 ],\n",
       "       [ 0.74024671,  0.78238546],\n",
       "       [ 0.28734105,  0.54399894],\n",
       "       [ 0.13831887,  0.65378073],\n",
       "       [ 0.8781196 ,  0.95508993],\n",
       "       [ 0.9828085 ,  0.6406107 ],\n",
       "       [ 0.4867201 ,  0.06894793],\n",
       "       [ 0.72932957,  0.41065263],\n",
       "       [ 0.25193094,  0.57517957],\n",
       "       [ 0.12197318,  0.19104401],\n",
       "       [ 0.04179795,  0.60087121],\n",
       "       [ 0.4756483 ,  0.08174651],\n",
       "       [ 0.28874594,  0.54595024],\n",
       "       [ 0.6805278 ,  0.11020519],\n",
       "       [ 0.22418776,  0.60923492],\n",
       "       [ 0.67783752,  0.34232244],\n",
       "       [ 0.70018066,  0.6923499 ],\n",
       "       [ 0.67231054,  0.84067409],\n",
       "       [ 0.84378951,  0.10580737],\n",
       "       [ 0.53488848,  0.61087072],\n",
       "       [ 0.26682739,  0.33076478],\n",
       "       [ 0.25821043,  0.16713311],\n",
       "       [ 0.87028743,  0.87597513],\n",
       "       [ 0.13661572,  0.9582191 ],\n",
       "       [ 0.55370366,  0.6764826 ],\n",
       "       [ 0.37485897,  0.66249231],\n",
       "       [ 0.12231987,  0.88468855],\n",
       "       [ 0.33742152,  0.11934803],\n",
       "       [ 0.75044569,  0.73751219],\n",
       "       [ 0.09162623,  0.35005735],\n",
       "       [ 0.31090152,  0.37930958]])"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#利用随机点进行聚类\n",
    "\n",
    "\n",
    "data = np.random.rand(100, 2) \n",
    "#生成一个随机数据，样本大小为100, 特征数为2（这里因为要画二维图，所以就将特征设为2）\n",
    "\n",
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nSUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x178929b7b38>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "estimator = KMeans(n_clusters=3)#构造聚类器，构造一个聚类数为3的聚类器\n",
    "estimator.fit(data)#聚类\n",
    "label_pred = estimator.labels_ #获取聚类标签\n",
    "centroids = estimator.cluster_centers_ #获取聚类中心\n",
    "inertia = estimator.inertia_ # 获取聚类准则的总和\n",
    "mark = ['or', 'ob', 'og', 'ok', '^r', '+r', 'sr', 'dr', '<r', 'pr']\n",
    "#这里'or'代表中的'o'代表画圈，'r'代表颜色为红色，后面的依次类推\n",
    "color = 0\n",
    "j = 0 \n",
    "for i in label_pred:\n",
    "    plt.plot([data[j:j+1,0]], [data[j:j+1,1]], mark[i], markersize = 5)\n",
    "    j +=1\n",
    "#plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[117.221753, 31.82258054]"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#读入经纬度坐标（WGS84坐标系）\n",
    "\n",
    "import csv\n",
    "\n",
    "\n",
    "reader = csv.reader(open(\"./cityForCluster.csv\"))  #数据目前不上传\n",
    "'''\n",
    "geoCrd=[]\n",
    "for lngq,latq in reader:\n",
    "    k=[float(lngq),float(latq)]\n",
    "    geoCrd.append(k)\n",
    "'''\n",
    "geo_crd=[[float(lngq),float(latq)] for lngq,latq in reader]\n",
    "geo_crd[0]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "ename": "TypeError",
     "evalue": "list indices must be integers or slices, not tuple",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mTypeError\u001b[0m                                 Traceback (most recent call last)",
      "\u001b[0;32m<ipython-input-9-cf00b67ce077>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      9\u001b[0m \u001b[0mj\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m0\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m     10\u001b[0m \u001b[1;32mfor\u001b[0m \u001b[0mi\u001b[0m \u001b[1;32min\u001b[0m \u001b[0mlabel_pred\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m---> 11\u001b[0;31m     \u001b[0mplt\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mgeo_crd\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m:\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m0\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m[\u001b[0m\u001b[0mgeo_crd\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m:\u001b[0m\u001b[0mj\u001b[0m\u001b[1;33m+\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m,\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmark_geo\u001b[0m\u001b[1;33m[\u001b[0m\u001b[0mi\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mmarkersize\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;36m5\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m     12\u001b[0m     \u001b[0mj\u001b[0m \u001b[1;33m+=\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n",
      "\u001b[0;31mTypeError\u001b[0m: list indices must be integers or slices, not tuple"
     ]
    }
   ],
   "source": [
    "esti_geo = KMeans(n_clusters=4)#构造聚类器，构造一个聚类数为3的聚类器\n",
    "esti_geo.fit(geo_crd)#聚类\n",
    "label_pred = esti_geo.labels_ #获取聚类标签\n",
    "centroids = esti_geo.cluster_centers_ #获取聚类中心\n",
    "inertia = esti_geo.inertia_ # 获取聚类准则的总和\n",
    "mark_geo = ['or', 'ob', 'og', 'ok', '^r', '+r', 'sr', 'dr', '<r', 'pr']\n",
    "#这里'or'代表中的'o'代表画圈，'r'代表颜色为红色，后面的依次类推\n",
    "color = 0\n",
    "j = 0 \n",
    "for i in label_pred:\n",
    "    plt.plot([geo_crd[j:j+1,0]], [geo_crd[j:j+1,1]], mark_geo[i], markersize = 5)\n",
    "    j +=1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\nUxNxfNcAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x1789302ad30>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "data=np.array(geo_crd)\n",
    "estimator = KMeans(n_clusters=3)#构造聚类器，构造一个聚类数为3的聚类器\n",
    "estimator.fit(data)#聚类\n",
    "label_pred = estimator.labels_ #获取聚类标签\n",
    "centroids = estimator.cluster_centers_ #获取聚类中心\n",
    "inertia = estimator.inertia_ # 获取聚类准则的总和\n",
    "mark = ['or', 'ob', 'og', 'ok', '^r', '+r', 'sr', 'dr', '<r', 'pr']\n",
    "#这里'or'代表中的'o'代表画圈，'r'代表颜色为红色，后面的依次类推\n",
    "color = 0\n",
    "j = 0 \n",
    "for i in label_pred:\n",
    "    plt.plot([data[j:j+1,0]], [data[j:j+1,1]], mark[i], markersize = 5)\n",
    "    j +=1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x17893034080>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "%matplotlib inline\n",
    "\n",
    "data=np.array(geo_crd)\n",
    "estimator = KMeans(n_clusters=5)#构造聚类器，构造一个聚类数为3的聚类器\n",
    "estimator.fit(data)#聚类\n",
    "label_pred = estimator.labels_ #获取聚类标签\n",
    "centroids = estimator.cluster_centers_ #获取聚类中心\n",
    "inertia = estimator.inertia_ # 获取聚类准则的总和\n",
    "mark = ['or', 'ob', 'og', 'ok', '^r', '+r', 'sr', 'dr', '<r', 'pr']\n",
    "#这里'or'代表中的'o'代表画圈，'r'代表颜色为红色，后面的依次类推\n",
    "color = 0\n",
    "j = 0 \n",
    "for i in label_pred:\n",
    "    plt.plot([data[j:j+1,0]], [data[j:j+1,1]], mark[i], markersize = 5)\n",
    "    j +=1"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.0"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
